package com.heima.stroke.rabbitmq;


import com.alibaba.fastjson.JSON;
import com.heima.modules.vo.StrokeVO;
import com.heima.stroke.configuration.RabbitConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;


@Component
public class MQProducer {
    private final static Logger logger = LoggerFactory.getLogger(MQProducer.class);
    @Autowired
    RabbitTemplate rabbitTemplate;

    /**
     * 发送延时订单MQ
     *
     * @param strokeVO
     */
    public void sendOver(StrokeVO strokeVO) {
        String mqMessage = JSON.toJSONString(strokeVO);
        logger.info("send timeout msg:{}",mqMessage);
        //TODO:任务4.2-发送邀请消息

        //exchange：交换机名称，指定消息发送到哪个交换机。
        //routingKey：路由键，用于指定消息的路由规则，帮助交换机将消息转发到指定的队列。
        //message：要发送的消息内容，可以是任意 Java 对象。convertAndSend() 方法会自动将对象序列化为字节流并发送
        rabbitTemplate.convertAndSend(RabbitConfig.STROKE_OVER_QUEUE_EXCHANGE,RabbitConfig.STROKE_OVER_KEY,mqMessage);
    }


}
